package src.Aula08.Ex2;

public class PratoDieta extends Prato {
    private double limiteCalorias;

    public PratoDieta(String nome, double limiteCalorias) {
        super(nome);
        this.limiteCalorias = limiteCalorias;
    }

    @Override
    public String toString() {
        String s = String.format("Prato '%s', composto por %d ingredientes - Prato Dieta (%.2f calorias)", getNome(),
                getAlimentos().size(), totalCalorias());
        return s;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = super.hashCode();
        long temp;
        temp = Double.doubleToLongBits(limiteCalorias);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (!super.equals(obj))
            return false;
        if (getClass() != obj.getClass())
            return false;
        PratoDieta other = (PratoDieta) obj;
        if (Double.doubleToLongBits(limiteCalorias) != Double.doubleToLongBits(other.limiteCalorias))
            return false;
        return true;
    }

    public double getLimiteCalorias() {
        return limiteCalorias;
    }

    public void setLimiteCalorias(double limiteCalorias) {
        this.limiteCalorias = limiteCalorias;
    }

    @Override
    public boolean addIngrediente(Alimento alimento) {
        if (alimento.getCalorias() > this.limiteCalorias)
            return false;
        super.addIngrediente(alimento);
        return true;
    }

}
